package memorphic.slide
{
	import flash.events.IEventDispatcher;
	
	public interface IStateView extends IEventDispatcher, ISlideStateClient
	{
		
		function get stateManager():StateManager;
		function set stateManager(manager:StateManager):void;
		
		function get defaultState():String;
		function set defaultState(state:String):void;
		
		function get parentView():IStateView;
		
		function set parentView(view:IStateView):void;
		
		
		/**
		 * Typically this should just return |this| or null. Return other values to tell the SlideDelegate to set the state on a different object
		 */
		function get stateView():*;
		
		function set stateView(view:*):void;
		
		
		/**
		 * Determines if the view is ready to be initialized. Typically, this means that it has been added to the stage
		 */ 
		function get viewReady():Boolean;

	}
}